package cc.rengu.igas.momp.facade;

import cc.rengu.igas.momp.facade.request.*;
import cc.rengu.igas.momp.facade.response.*;
import cc.rengu.igas.momp.facade.result.Result;

/**
 * 商户营销活动管理接口
 *
 * @author Jinan Liu
 * @date 2020/5/12 09:36
 */
public interface ManageMchntMcService {

    /**
     * 商户营销活动资金打款接口
     *
     * @param mchntMcAccountRechargeRequest 商户营销活动资金打款接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.MchntMcAccountRechargeResponse> 商户营销活动资金打款接口应答对象
     * @author Jinan Liu
     * @date 2020/5/12 09:52
     */
    Result<MchntMcAccountRechargeResponse> mchntmcAccountRecharge(MchntMcAccountRechargeRequest mchntMcAccountRechargeRequest);

    /**
     * 商户查询营销活动详情
     *
     * @param mchntQueryMcDetailInfoRequest 商户查询营销活动详情接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.MchntQueryMcDetailInfoResponse> 商户查询营销活动详情接口应答对象
     * @author Jinan Liu
     * @date 2020/6/11 15:07
     */
    Result<MchntQueryMcDetailInfoResponse> mchntQueryMcDetailInfo(MchntQueryMcDetailInfoRequest mchntQueryMcDetailInfoRequest);

    /**
     * 商户营销活动管理接口
     *
     * @param mchntMcManageRequest 商户营销活动管理接口请求报文
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.MchntMcManageResponse> 商户营销活动管理接口应答报文
     * @author Jinan Liu
     * @date 2020/6/14 15:37
     */
    Result<MchntMcManageResponse> manageMchntMc(MchntMcManageRequest mchntMcManageRequest);

    /**
     * 商户营销活动发布接口
     *
     * @param mchntMcPublishRequest 商户营销活动发布接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.MchntMcPublishResponse> 商户营销活动发布接口应答对象
     * @author Jinan Liu
     * @date 2020/6/14 15:38
     */
    Result<MchntMcPublishResponse> publishMchntMc(MchntMcPublishRequest mchntMcPublishRequest);

    /**
     * 商户参与联和营销活动接口
     *
     * @param mchntJoinJointMcRequest 商户参与联和营销活动接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.MchntJoinJointMcResponse>
     * @author Jinan Liu
     * @date 2020/5/12 09:43
     */
    Result<MchntJoinJointMcResponse> mchntJoinJointMc(MchntJoinJointMcRequest mchntJoinJointMcRequest);

    /**
     * 收银员收款账号配置接口
     *
     * @param manageCashierAccountRequest 收银员收款账号配置接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ManageCashierAccountResponse> 收银员收款账号配置接口应答对象
     * @author Jinan Liu
     * @date 2020/6/14 15:46
     */
    Result<ManageCashierAccountResponse> manageCashierAccount(ManageCashierAccountRequest manageCashierAccountRequest);

    /**
     * 收银员信息查询接口
     *
     * @param queryCashierInfoRequest 收银员信息查询接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.QueryCashierInfoResponse> 收银员信息查询接口应答对象
     * @author Jinan Liu
     * @date 2020/6/14 16:00
     */
    Result<QueryCashierInfoResponse> queryCashierInfo(QueryCashierInfoRequest queryCashierInfoRequest);


    /**
     * 收银员参与收银员返现活动接口
     *
     * @param cashierJoinCashierCashbackRequest 收银员参与收银员返现活动接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.CashierJoinCashierCashBackResponse> 收银员参与收银员返现活动接口应答对象
     * @author Jinan Liu
     * @date 2020/6/14 11:15
     */
    Result<CashierJoinCashierCashBackResponse> cashierJoinCashierCashback(CashierJoinCashierCashBackRequest cashierJoinCashierCashbackRequest);

    /**
     * 收银员返现明细查询接口
     * 收银员使用
     *
     * @param cashierMcCashbackDetailRequest
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.QueryMcListInfoResponse>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:04
     */
    Result<CashierMcCashbackDetailResponse> queryCashierCashbackDetail(CashierMcCashbackDetailRequest cashierMcCashbackDetailRequest);
}
